0:00–0:10
Recap
0:10–0:40
Lecture
0:40–1:40
Guided Lab
1:40–1:50
Bonus
1:50–2:00
Debrief
0:00 – 0:10 Recap · 10 min

Day 1 review & the email authentication gap

0:10 – 0:40 Lecture · 30 min

How email authentication works — SPF, DKIM, DMARC, and mail flow

The lecture has two parts: the email authentication chain (15 min) and Exchange Online mail flow mechanics (15 min). Both are needed for today's lab.

Part A — The email authentication chain

SPF
Is this server allowed to send for this domain?
+
DKIM
Was this message signed by the domain?
+
DMARC
What to do if SPF or DKIM fails?
=
Trust
Full email authentication

Part B — Exchange Online mail flow

Instructor note: Run a live MXToolbox lookup on the class subdomain (mxtoolbox.com/SuperTool) showing the MX record, SPF record, and DKIM record (which won't exist yet — students will add it in the lab). Show what "no DKIM" looks like before the lab begins so students can see the before/after. Run the same check at the end of the lab to show the DKIM CNAME records appearing.
0:40 – 1:40 Guided lab · 60 min

Lab 3-B: Completing the email authentication chain for Lakeview Logistics

Students enable DKIM signing, add the required CNAME records to their subdomain DNS zone, publish a DMARC policy, validate the full authentication chain externally, and use Message Trace to observe a live mail delivery event.

DMARC reporting address note: The rua and ruf addresses in your DMARC record must be valid mailboxes in your tenant. The dmarc-reports@[yoursubdomain] address will only receive reports if you create a shared mailbox for it. For this lab, the address doesn't need to be a real mailbox — but in production this is essential. Flag this as a Day 3 task (creating the dmarc-reports shared mailbox).
Instructor note: DKIM activation is occasionally slow — the EAC may show "Pending" for several minutes after the CNAME records are added. Have students proceed to DMARC and validation in parallel, then circle back to verify DKIM status. If DKIM is still not active after 10 minutes, check the CNAME values entered in DNS character by character — the tenant-specific values are easy to truncate accidentally.
1:40 – 1:50 Bonus material · 10 min

⭐ Bonus: DMARC policy progression & mail flow analysis via PowerShell

⭐ Bonus A — DMARC policy progression
  • The current DMARC policy is p=none (monitor only — no enforcement). Explain in your Lab Journal the three-stage DMARC deployment path: p=nonep=quarantinep=reject
  • What evidence would you want to see in DMARC aggregate reports before moving from p=none to p=quarantine? How long would you monitor?
  • Update your DMARC record to add a subdomain policy: append ; sp=reject to the record value. This sets p=none for the root domain but p=reject for any subdomains that don't have their own DMARC record. Explain in your Lab Journal why this is a useful intermediate step.
  • Verify the updated DMARC record in MXToolbox and record the full parsed result.
⭐ Bonus B — Mail flow analysis via PowerShell
  • Connect to Exchange Online PowerShell: Connect-ExchangeOnline -UserPrincipalName admin@[yoursubdomain]
  • Check DKIM signing configuration: Get-DkimSigningConfig | Select-Object Domain, Enabled, Status, Selector1CNAME, Selector2CNAME | Format-List
  • Pull recent message traces via PowerShell (last 24 hours):
    Get-MessageTrace -StartDate (Get-Date).AddDays(-1) -EndDate (Get-Date) | Select-Object Received, SenderAddress, RecipientAddress, Subject, Status | Format-Table -AutoSize
  • In your Lab Journal: what is the Status field showing for each message? What status values are possible and what does each one mean?
  • Stretch: filter for only failed deliveries: ... | Where-Object {$_.Status -ne "Delivered"}
1:50 – 2:00 Debrief · 10 min

Reflection & preview

Learning outcomes — by end of Day 2, students can…
Explain the auth chainDescribe SPF, DKIM, and DMARC — what each checks, what each protects against, and why all three are needed
Enable DKIM signingActivate DKIM for a custom domain in the EAC and add the required CNAME records to DNS
Publish a DMARC recordWrite and deploy a DMARC TXT record with correct syntax, reporting addresses, and p=none starting policy
Validate externallyUse MXToolbox to confirm MX, SPF, DKIM, and DMARC are all correctly published
Use Message TraceRun a message trace in the EAC and interpret the delivery path and status of a specific message
What you need ready
DNS control panel access (nw7.nat-acc.ca zones) MXToolbox open on projector Exchange Online PowerShell module Slide deck: SPF+DKIM+DMARC chain diagram Lab 3-B step sheet
Day 3 →Course Outline